/*******************************************************************\
| Camera.h
|
| CREATED:		4.6.2009
| DESCRIPTION:
| 
| 
\********************************************************************/
#ifndef CAMERA_H
#define CAMERA_H



namespace PhotonMapping
{

//*****************************************************************************
// class overview:
//   
//-----------------------------------------------------------------------------
class Camera
{
	public:
		Camera();

	public:
		// set camera position
		void SetPosition(const Math::Vector3& p_Position);

		// set target position
		void SetTarget(const Math::Vector3& p_Target);

		// update camera matrix
		void UpdateMatrix();

		// return camera transform matrix
		const Math::Matrix4& GetMatrix() const;

	private:
		// camera position
		Math::Vector3 m_Position;

		// view target
		Math::Vector3 m_Target;

		// camera matrix
		Math::Matrix4 m_Matrix;

};


}

#endif // CAMERA_H
